技術問答
技術文章
iT 徵才
聊天室
2026 鐵人賽
登入/註冊
問答
文章
Tag
邦友
鐵人賽
搜尋
2024 iThome 鐵人賽
DAY
25
0
佛心分享-IT 人自學之術
區塊鏈技術應用
系列 第
25
篇
邊界情況測試
16th鐵人賽
alex7777
2024-10-09 15:55:23
490 瀏覽
分享至
Boundary Condition Testing
是一種專注於測試系統極端情況的測試方法,這樣可以確保系統在特殊或邊界條件下依然能正常工作。
1.邊界情況測試類型
時間限制測試:設置了捐款的截止日期。
目標達成測試:測試在達成或未達成目標後的操作行為。
捐款者身份測試:測試不同身份的賬戶是否能進行正確操作。
極限金額測試:使用非常小或非常大的捐款金額,檢查系統是否能正確處理這些金額。
多賬戶交互測試:不同的捐款者同時進行操作,檢查合約是否能正確跟踪每個人的捐款。
時間限制測試範例
目標是募集 10 ETH,持續時間設定為 3600 秒(1 小時)。
web3.utils.toWei:將 10 ETH 轉換為 wei(智能合約使用的最小單位)。
time.increase:這是用來模擬區塊鏈時間的函數,這裡將時間增加 3601 秒,超過設定的 1 小時限制。
由於超過時間,合約應該拒絕捐款,並拋出帶有錯誤訊息 Crowdfunding has ended 的異常。
捐款者身份測試範例
contributor 捐款 5 ETH 進入合約,這是為了確保合約內有資金可以提款。
模擬 nonContributor 嘗試執行提款操作,這個帳戶並不是合約擁有者。
使用 web3.eth.getBalance(owner) 獲取合約擁有者的 ETH 餘額。
使用 assert 確認提款後擁有者的餘額是否增加,證明提款成功。
留言
追蹤
檢舉
上一篇
Web3.js 集成
下一篇
前端交互測試
系列文
區塊鏈技術應用
共
30
篇
目錄
RSS系列文
訂閱系列文
2
人訂閱
26
前端交互測試
27
如何在 Web3.js 中監聽智能合約事件
28
Crowdfunding
29
常見的智能合約安全漏洞
30
常見的智能合約安全漏洞2
完整目錄
熱門推薦
{{ item.subject }}
{{ item.channelVendor }}
|
{{ item.webinarstarted }}
|
{{ formatDate(item.duration) }}
直播中
立即報名
尚未有邦友留言
立即登入留言
iThome鐵人賽
參賽組數
902
組
團體組數
37
組
累計文章數
19831
篇
完賽人數
528
人
看影片追技術
看更多
{{ item.subject }}
{{ item.channelVendor }}
|
{{ formatDate(item.duration) }}
直播中
熱門tag
15th鐵人賽
16th鐵人賽
13th鐵人賽
14th鐵人賽
17th鐵人賽
12th鐵人賽
11th鐵人賽
鐵人賽
2019鐵人賽
javascript
2018鐵人賽
python
2017鐵人賽
windows
php
c#
linux
windows server
css
react
熱門問題
誰能證明AI是一場公司的大災難
鼎新ERP /SMART 專案成本分析..
Connect-AzureAD 的 powershell 指令
Debian 13 安裝 bind9 後找不到範例檔
MATABASE 多期比較問題請教
延續誰能證明ai是場災難
當盡力效勞堅持崗位下的自己和我們,會不會有時覺得只剩過勞
熱門回答
誰能證明AI是一場公司的大災難
鼎新ERP /SMART 專案成本分析..
Connect-AzureAD 的 powershell 指令
Debian 13 安裝 bind9 後找不到範例檔
當盡力效勞堅持崗位下的自己和我們,會不會有時覺得只剩過勞
熱門文章
終結輪詢噩夢:量化交易系統如何優雅地接收跨境股市即時串流?
好想跟 Discord 聊天就把專案寫好 : Claude Code Channels
AI網管課 - 怎麼建置10人網路 (概念篇)
筆記:.NET 併發處理 Async/Await 筆記
如何設計自己的遊戲開發同事
IT邦幫忙
×
標記使用者
輸入對方的帳號或暱稱
Loading
找不到結果。
標記
{{ result.label }}
{{ result.account }}